package edu.hunau.service;

import edu.hunau.pojo.ClassRoom;
import edu.hunau.pojo.Course;
import edu.hunau.pojo.Student;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 成绩管理
 */
public class GradeManager {
    /**
     * 课堂列表
     * Map中使用课堂的id作为key
     */
    private Map<String,ClassRoom> classRooms;

    /**
     * 学生信息
     */
    private Map<String,Student> students;


    public GradeManager(){

    }


    /**
     * TODO: 添加学生信息
     * @param id
     * @param name
     * @param major
     */

    public void addStudent(String id,String name,String major){

    }

    /**
     *TODO: 添加课程信息
     *
     * @param id 课堂编号
     * @param classRoomName 课堂名称
     * @param course  课程
     */

    public void addClassRoom(String id, String classRoomName, Course course){


    }


    /**
     * TODO： 为课堂 添加学生
     * @param classRoomId 课堂的编号
     * @param studentId 学生学号（可变长参数）
     */
    public void addStudent(String classRoomId, String... studentId){

    }

    /**
     * TODO: 批量为课堂添加成绩
     * @param classRoomId
     * @param grades key为学生学号，value为成绩。
     */
    public void addGradeBatch(String classRoomId,Map<String,Integer> grades){

    }

    /**
     * @param classRoomId
     */
    public void printClassRoomMessage(String classRoomId){

        printClassRoomGrade(classRoomId);

        System.out.println("课程平均分:"+classRoomAvgGrade(classRoomId));
        //打印课堂成绩的正态分布状态
        System.out.println("成绩正态分布情况:"+isnormalDistribution(classRoomId));
    }

    /**
     * todo : 打印课程的成绩 ( 可提供排序功能 )
     *
     * @param classRoomId
     */

    public void printClassRoomGrade(String classRoomId){


    }



    /***
     * TODO: 自己拓展一个方法：例如：获得某个学生的所有成绩，对学生的成绩进行排序
     */




    /**
     * TODO:  获得课程的平均成绩
     * @param classRoomId
     * @return
     */
    private double classRoomAvgGrade(String classRoomId){

        return 0;
    }

    /**
     * TODO: 扩展练习，判断课程的成绩是否符合正态分布。（推荐借助大模型完成）
     * @param classRoomId
     * @return
     */

    private String isnormalDistribution(String classRoomId){

        return "todo...";
    }

}
